//
// Created by ✎﹏ℳ๓独赏 ☆独醉 on 2023/4/20.
//
#include <stdio.h>
void getdata(int arr[],int n){
    int i;
    for(i=0;i<n;i++){
        arr[i]=n-i;
    }
}
void fun(int a[],int left,int right){
    if(left>=right){
        return;
    }
    int l=left-1,r=right+1,pivot=a[(right+left)/2],temp;
    while(l<r){
        do l++;while(a[l]<pivot);
        do r--;while(a[r]>pivot);
        if(l<r)temp=a[l],a[l]=a[r],a[r]=temp;
    }
    fun(a,left,r);//注意此处对要进行排序的区间的分割的方式
    fun(a,r+1,right);//要从右指针结束的地方分割
}
int main(){
//    int arr[50]={50,3,6,7,9,5,6,10,45,38,56,52,61,58,59,62,3,5,66,33,180,190,156,52,34,46,28,23,30,79,88,99,11,22,33,45,67,83,45,62,99,100,23,36,37,39,46,52,99,101},i;
////    getdata(arr,50);
//    for(i=0;i<50;i++){
//        printf("%d ",arr[i]);
//    }
//    printf("\n");
//    fun(arr,0,49);
//    for(i=0;i<50;i++){
//        printf("%d ",arr[i]);
//    }
    int arr[8]={10,3,9,2,8,2,7,5},i;
    for(i=0;i<8;i++){
        printf("%d ",arr[i]);
    }
    printf("\n");
    fun(arr,0,7);
    for(i=0;i<8;i++){
        printf("%d ",arr[i]);
    }
    return 0;
}